package com.jwmp.rbac.mapper;

import com.jwmp.core.util.QueryObject;
import com.jwmp.rbac.domain.Role;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface RoleMapper {
    /**
     * 添加角色
     * @param role
     */
    void insert(@Param("role") Role role);

    /**
     * 根据 id 修改角色
     * @param role
     */
    void update(@Param("role") Role role);

    /**
     * 删除角色以及对应的权限绑定
     * @param roleId
     */
    void delete(@Param("roleId")  Long roleId);

    /**
     * 查询所有的角色，不包括角色对应的用户
     * @return
     */
    List<Role> selectList(@Param("qo")QueryObject qo);

    /**
     * 查询满足条件的总记录书
     * @return
     */
    int selectCount(@Param("qo")QueryObject qo);

    /**
     * 根据 id 查询角色信息，包括权限
     * @param id
     * @return
     */
    Role selectOne(@Param("id") Long id);
}
